import BaseModel from './BaseModel'
import API from '../../api/apis'
import Filters from '../../utils/filters'

/**
 * 首页轮播图对象
 */
class BannerModel extends BaseModel {

  /**
   * 构造方法
   */
  constructor() {
    super()
    /**
     * 图片URL
     * @type {string}
     */
    this.pic = ''
    /**
     * 标题
     * @type {string}
     */
    this.title = ''
    /**
     * 详情
     * @type {string}
     */
    this.detail = ''
    /**
     * 跳转链接
     * @type {string}
     */
    this.switch = ''
    /**
     * 索引
     * @type {number}
     */
    this.index = 0

    /**
     * ====================== URL 相关 ====================================
     */
    /**
     * 获取详情数据的URL
     * @type {String}
     */
    this.detailUrl = API.banner.detail
    /**
     * 删除数据的URL
     * @type {String}
     */
    this.removeUrl = API.banner.remove
    /**
     * 添加数据的URL
     * @type {String}
     */
    this.addUrl = API.banner.add
    /**
     * 更新数据的URL
     * @type {String}
     */
    this.updateUrl = API.banner.update
    /**
     * 添到回收站的URL
     * @type {String}
     */
    this.dustbinPushUrl = API.banner.dustbinPush
    /**
     * 回收站还原的URL
     * @type {String}
     */
    this.dustbinPopUrl = API.banner.dustbinPop
    /**
     * 添加修改数据的KEY数组
     * @type {Array}
     */
    this.addOrUpdateKeyArr = ['title', 'detail', 'switch', 'pic']
  }

  /* ----- 获取指定图片大小 -------*/

  /**
   * PC端后台管理列表界面
   * @returns {string}
   */
  get pcAdminBannerUrl() {
    return Filters.imageFill(this.pic, 100, 100)
  }

  /**
   * 手机端首页图片
   * @returns {string}
   */
  get mHomeBannerUrl() {
    return Filters.imageMfit(this.pic, 7.5, 7.5, 'rem')
  }

  /**
   * 手机端后台管理界面列表
   * @returns {string}
   */
  get mAdminBannerListUrl() {
    return Filters.imageFill(this.pic, 1.6, 1.6, 'rem')
  }

  /**
   * PC端首页图片
   * @returns {string}
   */
  get pcHomeBannerUrl() {
    return Filters.imageFill(this.pic, 600, 400)
  }
}

/**
 * 列表加载URL
 * @type {String}
 */
BannerModel.listUrl = API.banner.all
/**
 * 获取所有回收站数据
 * @type {String}
 */
BannerModel.dustbinAllUrl = API.banner.dustbinAll

export default BannerModel
